Alteryx の DCM の概要
Alteryx では、データソースへの接続情報を管理する機能として、DCM(データ接続マネージャー)が存在します。いくつか設定項目もあり、どういった機能なのかまとめておきたく記事としました。
DCM とは
DCM は、Version 2021.4 以降で利用可能な機能で、公式ドキュメントには下記の通り記載があります。
データ接続マネージャー (DCM) は、データベースとクラウドの相互運用可能な接続 (データソースにリンクされた資格情報) のための一元的なストレージで、Alteryx 製品間のワークフロー接続管理とコラボレーションを促進します。DCMを使用して、ツールとワークフロー間で接続と資格情報を入力および使用します。
つまり、データベースや SaaS などをデータソースとするワークフローにおいて、その接続情報を DCM 上で一元管理し、ワークフローからは DCM 上の情報を参照させることができるようにする機能となります。
これにより、ユーザーは、これまでのように複数のワークフローやツール設定に接続情報を都度記入する必要はなくなり、DCM 上で設定したものを、ツールからも指定するだけでよくなります。
データソース側の設定に変更があった場合、各ワークフローやツール設定をすべて修正せず、DCM 側のみ修正すればよいというメリットがあります。
なお、DCM について同様の記載は Alteryx Server 側のドキュメントにもあり、Designer・Server の両方で利用可能な機能となっています。後述しますが、両製品間で DCM の情報を同期することも可能です。
また、 DCM は、あくまでユーザー個人が接続情報を管理するための機能であるため、DCM そのものを他のユーザーに共有することはできません。
Alteryx では、似たような機能として「データ接続の管理」というものがあります。
データ接続の管理 | Alteryx Help
こちらは、複数のユーザーが共有して使えるデータソースへの接続情報を管理するための機能です。Alteryx Server にもこのメニューがあり、管理者権限を持つユーザーがデータ接続を作成したり、共有するユーザー・グループをコントロールできます。
「データ接続の管理」については、本記事では扱いませんので、詳細は下記をご参照ください。
Alteryx ServerのData Connectionで接続を管理する – Alteryx Serverアドベントカレンダー2022| Developers IO
Alteryx Serverの管理者機能紹介(Data Connection管理編) | Developers IO
では DCM において、共有に近い機能はないのかというとそういうわけでもありません。 Alteryx Server では、別のユーザーに DCM の「接続(Connections)」を共有することは可能です。これにより、共有元のユーザーが作成した接続情報を使用するワークフローを、共有先のユーザーが Server 上で実行することは可能です。(DCM の情報そのものを共有することはできません。)
※詳細は後述します。
DCM の構成
こちらは Designer、Server 間で共通です。 DCM は、データソースへの接続情報を下記の3つにわけて管理します。
- データソース(Data Sources)
- 資格情報(Credentials)
- 接続(Connections)
それぞれの詳細は下記の通りです。
データソース(Data Sources)
DCM では、データ取得元/出力先となる、データベースや各種 SaaS (Tableau Cloud, Snowflake など)製品をテクノロジーと呼び、「データソース」として定義できます。
データソースを定義する際に必要な情報は、サービスによって異なります。RDBMS など ODBC 接続可能なサービスであれば、事前にドライバをインストールし、設定した DSN を指定します。
その他のサービスの例としては、下記のような情報を指定します。
- AWS の S3
- エンドポイント
- Tableau Cloud(データ出力のみ)
- サーバー URL
- サイト名
DCM では下記に記載があるツールやコネクタを使用可能です。
DCM Supported Connectors and Tools | Alteryx Help
資格情報(Credentials)
ユーザー名・パスワードやサービスへのアクセスキーなど、特定のデータソースへのアクセスするための情報を指します。
資格情報は、外部保管庫として Alteryx の外に保存することも可能です。
外部保管庫として、現在下記のサービスを利用可能です。
- AWS Secrets Manager(Version 2023.1 以降)
- Hashichorp Vault (Version 2022.3 以降)
- CyberArk Conjur (Version 2022.3 以降)
接続(Connections)
データソースと資格情報を紐づけたものを指します。 データソースに接続する際は、事前にデータソースと資格情報を組み合わせた「接続」を作成し、指定することになります。
1つのデータソースに複数の資格情報を紐づけることも可能なので、あるデータベースに対して異なる権限を持つユーザーでの操作が必要な場合、それぞれの資格情報を作成し、そのデータソースと紐づけることになります。
下図は、Alteryx Designer における DCM の構成例です。
1つのデータソースに2つの資格情報が紐づいており、「接続」が2つ作成されていることになります。
- データソース
- PostgreSQL(ODCB接続)
- ODBC DSN
- ドライバをインストールし、事前に端末で設定したものを指定
- 図では
postgres_local
- 資格情報
ユーザー名とパスワードによる認証- read write user
- read only user
- 接続
- データソース に read write user で接続
- データソース に read only user で接続
DCM システム設定
Alteryx Designer
DCM を Alteryx で利用するには、Alteryx のシステム設定で DCM の有効化が必要となります。有効化時の設定モードはいくつか種類があるので、ここでご紹介します。
Alteryx Designer の場合、Admin 版でメニューの「オプション > 詳細オプション > システム設定」より[システム設定]を開き、[DCM]メニューを開きます。
すると端末における DCM の設定画面が開きます。
各設定項目の詳細は、下記の通りです。
- Enable DCM for your Organization
- 端末上で、DCM を利用可能か選択します。DCM を利用可能にする場合、チェックを入れます
- Designer Version 2023.1 の場合、デフォルトで有効化されています
- 有効化することで、下記の通り GUI に反映されます
- データ入力ツールなど DCM に対応したツールでから DCM を使用する接続オプションが表示されます
- Designer のメニュー「ファイル」の項目に「データ管理」が表示されるようになり、ここでデータソースの定義など DCM の設定が行えます
- DCM
「Enable DCM for your Organization」にチェックが入っている場合、「DCM Mode」と「SDK (Gallery) Tools support」のモードを指定します- DCM Mode
- DCM Optional
- 接続情報は既定でワークフロー(各ツール設定)に保存されます。DCM 上に保存することも可能です。
- DCM as Default
- 接続情報は、既定で DCM に保存され管理されます。ワークフロー(各ツール設定)に保存することも可能です。
- データ入力ツールの場合、「DCM Optional」との違いは下図の「データ接続マネージャー(DCM)の使用」にチェックが入っているかどうかになります(DCM as Default ではチェックが入っており、接続先情報として、DCM を利用する設定となっています)
- DCM Only
- 新規で作成するワークフローについて、接続情報をワークフロー(ツール設定)に保存することができません。接続情報は DCM に保存し、各ツールからこの接続を選択することのみ可能となっています。
- 作成済みのワークフローであれば、接続情報がワークフロー(ツール設定)に保存されている場合でも実行可能です。
- DCM Enforced
- 接続情報をワークフロー(ツール設定)に保存することはできません
- 作成済みのワークフローであっても、接続情報がワークフロー(ツール設定)に保存されている場合、実行することもできません。下図のようなエラーとなります。
- DCM Optional
- SDK (Gallery) Tools support
SDK ツールが DCM の接続情報を使用可能か設定する項目です。
※SDK ツール:Python などのプログラムにより作成された Alteryx ツールを指し、Tableau 出力ツールなどはその一つです。
Tableau Output Tool | Alteryx Community
オプションは下記の3種類があります。- Allow
- SDK ツールから DCM の接続情報が使用可能かつ、[データ接続マネージャー]の「接続(Connections)」の編集画面上で、「SDK への接続を許可」のチェックボックスが表示され、ユーザー側で各接続について、SDK ツールからの使用可否を選択できます
- 「SDK への接続を許可」のチェックボックスが無効化された接続は、SDK ツールから選択することができなくなります
- Allow All
- すべての SDK ツールから DCM の接続情報が使用可能となり、ユーザー側で各接続について、SDK ツールからの使用可否を選択するチェックボックスも表示されません
- Deny
- すべての SDK ツールから DCM の接続情報が使用不可となり、ユーザー側で各接続について、SDK ツールからの使用可否を選択するチェックボックスも表示されません
- Allow
- DCM Mode
- Allow Override by User
- Block DCM Connections Synchronization between Server and Designer
- Alteryx Server と DCM 設定を同期可能か選択できます
Alteryx Server
Alteryx Server においても、DCM の利用方法と設定項目の内容は概ね同様です。ただし、FIPS 対応バージョンでは、DCM Mode が「DCM Enforced」となっており、変更できない仕様となっています。
DCM の同期
DCM は、Designer と Server 間で同期することができます。
同期した内容は、Desigenr・Server間の両方で編集可能です。Server または Desigenr 上でのみ編集可能、といった使い方はできません。
こちらの具体的な手順は、下記をご参照ください。
Designer と Server 間で資格情報を同期する | Alteryx Help
Alteryx ServerのDCMをAlteryx Designerに共有する – Alteryx Serverアドベントカレンダー2022 | DevelopersIO
DCM のバックアップと復元
DCM で管理している接続情報は、ファイルベースでのバックアップを取得可能です。
Alteryx Server での接続(Connections)の共有
Alteryx Server では、Server 上のあるユーザーのDCM の接続(Connections)を他のユーザーと共有することが可能です。これにより、接続を共有されたユーザーは、共有された接続を使用するワークフローを Server 上で実行できるようになります。
ただし、共有された接続の情報は、共有元のユーザーからのみ確認可能です。(Alteryx Server 上において、共有先ユーザーの DCMデータソース・DCM資格情報にこの情報が表示されることはありません。)
下記は、例として、Snowflake の接続を使用するワークフローを、Server上で他ユーザーに共有した際の手順と挙動です。
- 対象の接続を使用するワークフローを Server にアップロード
- ※DCM を含むワークフローを Server にアップロードする際は、Server 上でも上述の「DCM Mode」でDCM が有効となっている必要があります。
- Server にアップロードしたワークフローを Collection 経由でユーザーに共有
- この時点では、共有先ユーザーは、ワークフローを実行するができません。
- ※実行時のメッセージ。このワークフローでは、データ入力ツールを使用。
- Desigenr より DCM を同期し、共有元ユーザーで「DCMデータソース > データソース > 詳細」に表示される接続の縦三点リーダーから、共有先ユーザーまたはグループを追加
- 「接続」を共有されたユーザーの一覧に共有先ユーザーが追加される
以上の手順で、共有先ユーザーが、共有元ユーザーの接続を使用するワークフローを Server 上で実行することができます。
さいごに
Alteryx の DCM について調べてみました。Server 上での接続の共有は、資格情報を直接渡さずに他のユーザーがワークフローを実行できるので、セキュリティの観点でも使ってみたい機能と思いました。ただし、Alteryx における DCM はあくまでユーザーが自身の接続情報を管理するための場所なので、接続情報を組織で一元管理するための機能ではないという点は注意が必要と感じました。